import gevent
def func1():
    print('\033[31;1m李闯在跟海涛搞...\033[0m')
    gevent.sleep(2)  # 到这自动切换
    print('\033[31;1m李闯又回去跟继续跟海涛搞...\033[0m')

def func2():
    print('\033[32;1m李闯切换到了跟海龙搞...\033[0m')
    gevent.sleep(1)
    print('\033[32;1m李闯搞完了海涛，回来继续跟海龙搞...\033[0m')

def func3():
    print('\033[32;1m333李闯切换到了跟海龙搞...\033[0m')
    gevent.sleep(1)
    print('\033[32;1m333李闯搞完了海涛，回来继续跟海龙搞...\033[0m')


gevent.joinall([  # 创建协程并行执行程序(如果没有切换,会按照函数顺序执行)，碰到IO就切换
    gevent.spawn(func1),
    gevent.spawn(func3),  # 按顺序切换, 1 自动切换到2, 2 自动切换到3
    gevent.spawn(func2),
])

print("-----------")